package tp;

import tp.Liczba.LiczbaException;
import junit.framework.TestCase;

public class LiczbaTest3 extends TestCase {

	private Liczba liczba;
	
	// Check for exception when the passed base number system is out of bounds
	public void testLiczbaFailWhenOutOfBounds() {
		try {
			liczba = new Liczba("10",17);
			fail();
		}
		catch(LiczbaException e) {
			assertEquals("Podstawa systemu musi byc liczba w przedziale 2 - 16.", e.getMessage());
		}
	}
	
	// Check for exception when the passed String representation of the number is empty
	public void testLiczbaFailWhenEmptyString() {
		try {
			liczba = new Liczba("",10);
			fail("Missing exception!");
		}
		catch(LiczbaException e) {
			assertEquals("Nie podano zadnej liczby.", e.getMessage());
		}
	}

	public void testZapisAssertEqualsReturnMessage() {
		liczba = new Liczba("FF", 16);
		
		assertEquals("Number conversion discrepancy!","FF",liczba.zapis(16));
	}
	
	public void testZapisAssertEquals() {
		liczba = new Liczba("FF", 16);
		
		assertEquals("3333",liczba.zapis(4));
	}
	
	public void testZapisAssertTrue() {
		liczba = new Liczba("FF", 16);

		assertTrue(liczba.zapis(10) instanceof String);
	}
	
	public void testDecimal_To_Hex_Expected_Result_True(){
		int chosenNumber = 29;
		liczba = new Liczba(chosenNumber);
		String expectedResult = "1D";
		
		assertEquals(expectedResult,liczba.zapis(16));
	}
}
